Passed
Push — main ( 11bfaa...07b618 )
by Andrii
01:53
created

check.spec.tsx ➔ Root3   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
1
import React from "react"
2
import classNamesCheck from "./check"
3
import type { ClassNames } from "./defs"
4
5
import css from "./some.css"
6
import module from "./some.module.css"
7
const module_css: typeof module = {
8
  "class1": "hash1",
9
  "class2": "hash2"
10
}
11
12
function App(_: ClassNames<"class1"|"class2">) { return null }
13
function Component(_: ClassNames<"class1">) { return null }
14
15
it("without", () => {
16
  <App classNames={css} />;
17
  <App classNames={module_css} />;
18
  <Component classNames={module_css} />;
19
})
20
21
it("declares", () => {
22
  <App classNames={classNamesCheck()} />;
23
24
  <App
25
      //@ts-expect-error Property 'class2' is missing
26
      classNames={
27
        classNamesCheck<"class1">() } />;
28
29
    <App
30
      //@ts-expect-error Property 'class2' is missing
31
      classNames={
32
        classNamesCheck<typeof Component>()} />;
33
  
34
  expect(true).toBe(true)
35
})
36
37
it("propagates", () => {
38
  <App classNames={classNamesCheck(css)} />;
39
40
  <Component classNames={classNamesCheck(module_css)} />;
41
42
  <App classNames={classNamesCheck(module_css)} />;
43
44
  <App
45
    //@ts-expect-error Property 'class2' is missing
46
    classNames={
47
      classNamesCheck({class1: undefined})} />;
48
})
49
50
it("equility if possible", () => {
51
  <App classNames={classNamesCheck<typeof App>(css)} />;
52
53
  <App classNames={classNamesCheck<typeof App>(module_css)} />;
54
55
  //TODO //@ts-expect-error
56
  classNamesCheck<typeof Component>(module_css);
57
58
  //TODO //@ts-expect-error
59
  <Component classNames={classNamesCheck<typeof Component>(module_css)} /> ;
60
61
  expect(true).toBe(true)
62
})